package events {
	
	import flash.events.Event;
	
	/**
	 * A class to manage all custom events that occur within the lifecycle of an experiment.
	 * @author Brent Kersanske
	 */ 
	public class ExperimentEvent extends Event {
		
		public static var INSTRUCTIONS_COMPLETE:String     = "ee__instructionsComplete";
		public static var QUESTION_LOADING_COMPLETE:String = "ee__questionLoadingCompelte";
		public static var COMBO_CHANGE:String 	  	       = "ee__comboChange";
		public static var NEXT_QUESTION:String    	       = "ee__loadNextQuestion";
		public static var NEW_RESULT:String 	           = "ee__newResult";
		public static var START_EXPERIMENT:String          = "ee__startExperiment";
		
		
		private var _a:*;		
		private var _b:*;
		
		public function ExperimentEvent(type:String, bubbles:Boolean, cancelable:Boolean, a:*=null, b:*=null){
        	super(type, bubbles, cancelable);
			_a = a;
			_b = b;
		}
	
		public function get a():* {
			return _a;
		}
		
		public function get b():* {
			return _b;
		}
		
		override public function clone():Event {
			return new ExperimentEvent(type, bubbles, cancelable, a, b);
		}
	}
}